import { IMessageBase } from "../../Framework/MQ/IMessageBase";
import { MessageManager } from "../../Framework/MQ/MessageManager";
import { SerializeStream } from "../../Framework/Serialize/SerializeStream";
import { SeqPlayerItemUpdateHelper } from "../Game/SeqPlayerItemUpdateHelper";
import { DictIntIntHelper } from "./DictIntIntHelper";
import { SeqAttributeUpdateHelper } from "./SeqAttributeUpdateHelper";
import { SPublicMiniPlayer } from "./SPublicMiniPlayer";
import { SFightAttribute } from "./SFightAttribute";
import { SWuXinAttribute } from "./SWuXinAttribute";
import { SJewelTarget } from "./SJewelTarget";
import { SMapSuitSetPartsInfo } from "./SMapSuitSetPartsInfo";
type int = number;
//class SWrestlePlayerInfo
    
    export  class SWrestlePlayerInfo extends IMessageBase
    {
        constructor(arg1: Boolean=false)
        {
            
            super();if (arg1) 
            {
                MessageManager.instance().regist(this);
            }
            return;
        }

        public /* override */ getType(): int
        {
            return this._type;
        }

        public /* override */ clone(): IMessageBase
        {
            return new SWrestlePlayerInfo();
        }

        public /* override */ __write(arg1: SerializeStream): void
        {
            this.miniPlayer.__write(arg1);
            SeqPlayerItemUpdateHelper.write(arg1, this.equips);
            this.fightAttribute.__write(arg1);
            this.wuxing.__write(arg1);
            DictIntIntHelper.write(arg1, this.wuxingAttributes);
            this.jewelTarget.__write(arg1);
            arg1.writeInt(this.runeFight);
            arg1.writeInt(this.fightSpiritLevel);
            arg1.writeInt(this.fightSpiritBreakLevel);
            arg1.writeInt(this.activeSpiritEquipExType);
            this.mapSpiritEquipSuitSetInfo.__write(arg1);
            SeqPlayerItemUpdateHelper.write(arg1, this.playerAmuletItemUpdate);
            SeqAttributeUpdateHelper.write(arg1, this.fashionJewelInfo);
            arg1.writeInt(this.flyLevel);
            return;
        }

        public /* override */ __read(arg1: SerializeStream): void
        {
            this.miniPlayer = new SPublicMiniPlayer();
            this.miniPlayer.__read(arg1);
            this.equips = SeqPlayerItemUpdateHelper.read(arg1);
            this.fightAttribute = new SFightAttribute();
            this.fightAttribute.__read(arg1);
            this.wuxing = new SWuXinAttribute();
            this.wuxing.__read(arg1);
            this.wuxingAttributes = DictIntIntHelper.read(arg1);
            this.jewelTarget = new SJewelTarget();
            this.jewelTarget.__read(arg1);
            this.runeFight = arg1.readInt();
            this.fightSpiritLevel = arg1.readInt();
            this.fightSpiritBreakLevel = arg1.readInt();
            this.activeSpiritEquipExType = arg1.readInt();
            this.mapSpiritEquipSuitSetInfo = new SMapSuitSetPartsInfo();
            this.mapSpiritEquipSuitSetInfo.__read(arg1);
            this.playerAmuletItemUpdate = SeqPlayerItemUpdateHelper.read(arg1);
            this.fashionJewelInfo = SeqAttributeUpdateHelper.read(arg1);
            this.flyLevel = arg1.readInt();
            return;
        }

        public /* const */_type: int=615;

        public /* var */miniPlayer: SPublicMiniPlayer;

        public /* var */equips: Array<any>;

        public /* var */fightAttribute: SFightAttribute;

        public /* var */wuxing: SWuXinAttribute;

        public /* var */wuxingAttributes: Map<any, any> /* flash.utils.Dictionary */;

        public /* var */jewelTarget: SJewelTarget;

        public /* var */runeFight: int;

        public /* var */fightSpiritLevel: int;

        public /* var */fightSpiritBreakLevel: int;

        public /* var */activeSpiritEquipExType: int;

        public /* var */mapSpiritEquipSuitSetInfo: SMapSuitSetPartsInfo;

        public /* var */playerAmuletItemUpdate: Array<any>;

        public /* var */fashionJewelInfo: Array<any>;

        public /* var */flyLevel: int;

        public static /* var */_regist: SWrestlePlayerInfo;
    }

            SWrestlePlayerInfo._regist = new SWrestlePlayerInfo(true);
        